#define _CRT_SECURE_NO_WARNINGS 1
//#include <iostream>
//#include<string>
//using namespace std;
//
//int main() {
//    int a = 0;
//    cin >> a;
//    int a1 = 0;
//    int a2 = 1;
//    int tale;
//    while (true)
//    {
//        int next = a1 + a2;
//        if (next > a)
//        {
//            tale = min(next - a, a - a2);
//            break;
//        }
//        a1 = a2;
//        a2 = next;
//    }
//    cout << tale << endl;
//}
#include <iostream>
#include<vector>
using namespace std;
int main() {
    int n;
    cin >> n;
    std::vector<vector<int>> pp(n+1,vector<int>(n+1));
    for (int i = 1; i <= n; i++)
    {
        for (int j = 1; j <= i; j++)
        {
            if (j == 1)
            {
                pp[i][j] = 1;
            }
            else
            {
                pp[i][j] = pp[i - 1][j] + pp[i - 1][j - 1];
            }
        }
    }
    for (auto& p : pp)
    {
        for (auto& data : p)
        {
            if (data != 0)
            {
                cout << data << " ";
            }
        }
        cout << endl;
    }
    return 0;
}